
#ifndef SS_H
#define	SS_H

struct SS_counter;
struct SS_bucket;

typedef struct SS_bucket {
	long value;
	struct SS_counter *ctr;
	struct SS_bucket *next, *prev;
} SS_bucket;

typedef struct SS_counter {
	long id;
	long eps;
	struct SS_counter *next, *prev;
	struct SS_bucket *bucket;
} SS_counter;

typedef struct SS_type {
	SS_bucket *bfirst;
	long N;
	int numc, numb;
} SS_type;

extern SS_type * SS_Init(float);
extern void SS_printctrs(SS_bucket *);
extern void SS_Update(SS_type *, int, int); 
extern unsigned int * SS_Output(SS_type *, int);
extern void SS_Destroy(SS_type *);
extern int SS_Size(SS_type *);

#endif
